home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
051-060
/
amok59
/
checkday
/
checkday.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
68 lines
(* ------------------------------------------------------------------------
:Program. CheckDay
:Author. Kai Bolay [kai]
:Address. Hoffmannstraße 168
:Address. D-7250 Leonberg 1
:History. v1.0 [kai] 29-Sep-91 (initial)
:Copyright. PD
:Language. Oberon
:Translator. AMIGA OBERON v2.09e
------------------------------------------------------------------------ *)
MODULE CheckDay;
IMPORT
d: Dos, e: Exec, y: SYSTEM;
CONST
Version = "\o$VER: CheckDay v1.0 (29-Sep-91)\n\r";
Template = "From/A,To/A";
VAR
RD: d.RDArgsPtr;
ArgArray: ARRAY 2 OF LONGINT;
Start, End, Now: INTEGER;
Date: d.Date;
PROCEDURE GetDay (Day: e.STRPTR): INTEGER;
VAR
i: INTEGER;
BEGIN
i := 0; WHILE Day^[i] # 0X DO Day^[i] := CAP (Day^[i]); INC (i) END;
IF Day^ = "SUNDAY" THEN RETURN 0;
ELSIF Day^ = "MONDAY" THEN RETURN 1;
ELSIF Day^ = "TUESDAY" THEN RETURN 2;
ELSIF Day^ = "WEDNESDAY" THEN RETURN 3;
ELSIF Day^ = "THURSDAY" THEN RETURN 4;
ELSIF Day^ = "FRIDAY" THEN RETURN 5;
ELSIF Day^ = "SATURDAY" THEN RETURN 6;
ELSE RETURN -1 END;
END GetDay;
BEGIN
IF d.dos.lib.version < 37 THEN
y.SETREG (0, d.Write (d.Output(), "Go, get a 2.0 ROM!\n", 19));
HALT (20);
END;
d.PrintF ("%s", y.ADR (Version)+7);
RD := d.ReadArgs (Template, ArgArray, NIL);
IF RD = NIL THEN
d.PrintF ("Usage: CheckDay %s\n", y.ADR (Template));
HALT (20);
END;
Start := GetDay (ArgArray[0]);
IF Start = -1 THEN
d.PrintF ("'%s' is no valid day of the week!\n", ArgArray[0]);
HALT (20);
END;
End := GetDay (ArgArray[1]);
IF End = -1 THEN
d.PrintF ("'%s' is no valid day of the week!\n", ArgArray[1]);
HALT (20);
END;
d.DateStamp (Date); Now := SHORT (Date.days MOD 7);
IF ((Start <= End) AND ((Now >= Start) AND (Now <= End))) OR
((Start > End) AND ((Now >= Start) OR (Now <= End))) THEN
HALT (5);
END;
CLOSE
IF RD # NIL THEN d.FreeArgs (RD); RD := NIL END;
END CheckDay.